/******************************************************************************
 *
 *       Copyright Zebra Technologies, Inc. 2014 - 2015
 *
 *       The copyright notice above does not evidence any
 *       actual or intended publication of such source code.
 *       The code contains Zebra Technologies
 *       Confidential Proprietary Information.
 *
 *
 *  Description:  AppConfiguration.h
 *
 *  Notes:
 *
 ******************************************************************************/

#import <Foundation/Foundation.h>
#import "InventoryItem.h"

#define ZT_APP_CFG_CONNECTION_AUTO_DETECTION           @"MotRfidAppConnectionAutoDetection"
#define ZT_APP_CFG_CONNECTION_AUTO_RECONNECTION        @"MotRfidAppConnectionAutoReconnection"
#define ZT_APP_CFG_NOTIFICATION_AVAILABLE              @"MotRfidAppNotificationAvailable"
#define ZT_APP_CFG_NOTIFICATION_CONNECTION             @"MotRfidAppNotificationConnection"
#define ZT_APP_CFG_NOTIFICATION_BATTERY                @"MotRfidAppNotificationBattery"
#define ZT_APP_CFG_HOST_BEEPER_ENABLED                 @"MotRfidAppHostBeeperEnabled"
#define ZT_APP_CFG_APP_INSTALLED                       @"MotRfidAppInstalled"
#define ZT_APP_CFG_APP_DATA_EXPORT                     @"ZTRfidAppDataExport"
#define ZT_APP_CFG_READER_ASCII_PASSWORD               @"ZTRfidAppReaderAsciiPassword"

@interface zt_AppConfiguration : NSObject
{
    BOOL m_ConfigConnectionAutoDetection;
    BOOL m_ConfigConnectionAutoReconnection;
    BOOL m_ConfigNotificationAvailable;
    BOOL m_ConfigNotificationConnection;
    BOOL m_ConfigNotificationBattery;
    BOOL m_ConfigHostBeeperEnabled;
    BOOL m_ConfigDataExport;

    /* temporary UI settings */
    
    /* search criteria from inventory screen */
    NSMutableString *m_SearchCriteria;
    
    /* selected item on inventory screen */
    zt_InventoryItem *m_SelectedInventoryItem;
    int m_SelectedInventoryIdx;
    
    NSMutableString *m_TagIdLocationing;
    NSMutableString *m_TagIdAccess;
    
    /* selected memory bank on inventory operations screen (UI only) */
    SRFID_MEMORYBANK m_SelectedInventoryMemoryBankUI;
}

- (void)loadAppConfiguration;

- (BOOL)getConfigConnectionAutoDetection;
- (BOOL)getConfigConnectionAutoReconnection;
- (void)setConfigConnectionAutoReconnection:(BOOL)option;
- (BOOL)getConfigNotificationAvailable;
- (void)setConfigNotificationAvailable:(BOOL)option;
- (BOOL)getConfigNotificationConnection;
- (void)setConfigNotificationConnection:(BOOL)option;
- (BOOL)getConfigNotificationBattery;
- (void)setConfigNotificationBattery:(BOOL)option;
- (BOOL)getConfigHostBeeperEnabled;
- (void)setConfigHostBeeperEnabled:(BOOL)option;
- (BOOL)getConfigDataExport;
- (void)setConfigDataExport:(BOOL)option;
- (NSString*)getConfigAsciiPassword:(int)reader_id;
- (void)setConfigAsciiPassword:(NSString*)password forReader:(int)reader_id;

- (void)setTagSearchCriteria:(NSString*)criteria;
- (NSString*)getTagSearchCriteria;

- (zt_InventoryItem *)getSelectedInventoryItem;
- (int)getSelectedInventoryItemIndex;
- (void)setSelectedInventoryItem:(zt_InventoryItem *)item withIdx:(int)index;
- (void)clearSelectedItem;
- (SRFID_MEMORYBANK)getSelectedInventoryMemoryBankUI;
- (void)setSelectedInventoryMemoryBankUI:(SRFID_MEMORYBANK)val;
- (NSString*)getTagIdLocationing;
- (void)setTagIdLocationing:(NSString*)val;
- (void)clearTagIdLocationingGracefully;
- (NSString*)getTagIdAccess;
- (void)setTagIdAccess:(NSString*)val;
- (void)clearTagIdAccessGracefully;

@end
